package com.example.meservice.utils;

/**
 * 分布式锁接口
 * 定义获取锁和释放锁的操作规范
 * 支持可中断、可超时的锁获取模式
 *
 * @author czwa
 */
public interface ILock {

    /**
     * 尝试获取锁
     * 若锁在指定时间内可用，则获取锁并返回true
     * 若锁在指定时间内不可用，则放弃获取并返回false
     *
     * @param timeoutSec 获取锁的最大等待时间（秒）
     * @return 获取成功返回true，失败返回false
     */
    boolean tryLock(long timeoutSec);

    /**
     * 释放锁
     * 必须由持有锁的线程/进程调用
     * 建议在finally块中调用以确保锁的释放
     */
    void unlock();
}